package com.enjoyor.soa.traffic.api.service.dubbo.collectms;

import com.enjoyor.soa.traffic.util.pojo.ResultPojo;

/**
 * collect中实时值服务（从redis中获取）
 * @author zhum
 * @date 2018-07-26 8:27
 */
public interface IDubboRealTimeDataService {

    /**
     * 获取当前时间内单个设备的5分钟实时统计值，例如当前8:43 计算8：40~8：43
     * @param devId 设备ID
     * @return DevDataDto
     */
    ResultPojo getRealTimeDevData(String devId);

    /**
     * 获取当前时间内所有设备5分钟实时统计值
     * @return List<DevDataDto>
     */
    ResultPojo getRealTimeDevData();

    /**
     * 获取当前时间内单个设备-车道的5分钟实时统计值，例如当前8:43 计算8：40~8：43
     * @param devId 设备ID
     * @param laneId 车道ID
     * @return DevWayDataDto
     */
    ResultPojo getRealTimeDevLaneData(String devId, String laneId);

    /**
     * 获取当前时间内所有设备-车道的5分钟实时统计值
     * @return List<DevWayDataDto>
     */
    ResultPojo getRealTimeDevLaneData();

    /**
     * 获取当前单个设备状态
     * @param devId 设备ID
     * @return DevRealStatusDto
     */
    ResultPojo getRealDevStatus(String devId);

    /**
     * 获取当前所有设备状态
     * @return List<DevRealStatusDto>
     */
    ResultPojo getRealDevStatus();

    /**
     * 获取当前单个设备-车道状态
     * @param devId 设备ID
     * @param laneId 车道ID
     * @return DevWayRealStatusDto
     */
    ResultPojo getRealDevLaneStatus(String devId, String laneId);

    /**
     * 获取当前所有设备-车道状态
     * @return List<DevWayRealStatusDto>
     */
    ResultPojo getRealDevLaneStatus();


    /**
     * 设备车道实时数据
     * @param devType 设备类型
     * @return 设备车道实时数据
     */
    ResultPojo getDevDataByType(String devType);

}
